class animals():
    def eat(self):
        print("吃饭")
        pass
    def drink(self):
        print("喝水")
#     继承
class cat(animals):
    def miaomiao(self):
        print("喵喵")
        pass
class dog(animals):
    def wangwang(self):
        print("汪汪")
        pass
dewen=cat()
dewen.eat()
hashiqi=dog()
hashiqi.drink()

# 多继承
class A():
    def a(self):
        print("我是A类中的a方法")
        pass

class B():
    def b(self):
        print("我是B类中的b方法")
        pass
class C(A,B):
    pass
c=C()
c.a()
c.b()

# 当继承的父类中有同名方法是，在调用时，调用哪个方法？
class Base1():
    def test(self):
        print("我是Base1中的test方法")
        pass
class Base2():
    def test(self):
        print("我是Base2中的test方法")
        pass
class E(Base1):
    # def test(self):
    #     print("我是E中的test方法")
    #     pass
    pass
class F(Base2):
    def test(self):
        print("我是F中的test方法")
        pass
class G(E,F):
    # def test(self):
    #     print("我是G中的test方法")
    #     pass
    pass

g=G()
g.test()
# 在python中，可以通过__mro__查看方法调用的顺序
# 继承具有传递性（类可以继承父类的父类中的方法）
print(G.__mro__)